[toc]
图解kubernetes Pod创建流程大揭秘
kubernetes中的容器创建无疑是个复杂的过程,涉及内部各种组件的统一协作,还有对接外部的CRI运行时,本文尝试初探一下容器创建流程中的各种细节,了解其各种组件协作流程,从而在后续出现问题的时候,也好能大概有点排查方向
1. 基础筑基
1.1 容器管理线程模型

kubelet中的线程模型属于master/wroker模型,通过单master来监听各种事件源,并为每个Pod创建一个goroutine来进行Pod业务逻辑的处理,master和wroker之间通过一个状态管道来进行通信
1.2 基于事件驱动的状态最终一致性

在通过yaml创建Pod之后,kubernetes会根据当前的事件和当前的Pod状态,来不断进行调整,从而达到最终目标状态的一致性
1.3 组件协作流程

kubelet的结构体声明就高达300多行代码,可见其复杂程度,但是我们按照容器创建这个流程,我们去观察其核心流程,其实主要可以概括为三部分:kubelet、containerRuntime、CRI容器运行时